package gambit.view;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JPanel;

public class TabuleiroView extends JPanel {

	private static final long serialVersionUID = -8143589277763616345L;
	private int dim = 650;
	private final int numCasas = 8;
	private int tamanhoCasas;
	private int tamanhoPecas;
	private int diferenca;
	private int[] casasTabuleiro;
	
	public TabuleiroView(int[] casasTabuleiro){
		
		this.casasTabuleiro = casasTabuleiro;
		tamanhoCasas = dim/numCasas;
		tamanhoPecas = (int) Math.round(0.9*tamanhoCasas);
		diferenca = (tamanhoCasas - tamanhoPecas)/2;
	}
	
	public void paintComponent(Graphics g){
		super.paintComponent(g);
		int i, j, inicioPreta;
		for(i = 0; i < numCasas; i++){
			if(i%2 == 1)
				inicioPreta = tamanhoCasas;
			else
				inicioPreta = 0;	
			for(j = 0; j < numCasas/2; j++){							
				g.fillRect(inicioPreta + j*2*tamanhoCasas, i*tamanhoCasas,tamanhoCasas, tamanhoCasas);
			}
			if(i%2 == 1 && numCasas%2 == 1){
				g.fillRect(inicioPreta + j*2*tamanhoCasas, i*tamanhoCasas,tamanhoCasas, tamanhoCasas);
			}
		}
		
		i=0;		
		for(Integer k : casasTabuleiro){
			if(k.equals(1))
				g.setColor(Color.BLACK);
			if(k.equals(2))
				g.setColor(Color.BLUE);
			if(k.equals(-1))
				g.setColor(Color.RED);
			if(k.equals(-2)) g.setColor(Color.ORANGE);
			if(!k.equals(0))
				g.fillOval(diferenca + tamanhoCasas*((i%4)*2 + i/4%2),diferenca + tamanhoCasas*(7-i/4), tamanhoPecas, tamanhoPecas);
			i++;
		}
	}
	
	public void setCasasTabuleiro(int[] casasTabuleiro){
		this.casasTabuleiro = casasTabuleiro;
		repaint();
	}
}
